﻿using System;

namespace SharpSqlAnalyzer.nodes.hive
{
	// Token: 0x02000422 RID: 1058
	public class THiveShowSqlNode : TParseTreeNode
	{
		// Token: 0x1700095B RID: 2395
		// (get) Token: 0x060028D1 RID: 10449 RVA: 0x0033CEBC File Offset: 0x0033B0BC
		public virtual bool Extended
		{
			get
			{
				return this.isExtended;
			}
		}

		// Token: 0x1700095C RID: 2396
		// (get) Token: 0x060028D2 RID: 10450 RVA: 0x0033CEC4 File Offset: 0x0033B0C4
		public virtual TPartitionExtensionClause PartitionSpec
		{
			get
			{
				return this.partitionSpec;
			}
		}

		// Token: 0x1700095D RID: 2397
		// (get) Token: 0x060028D3 RID: 10451 RVA: 0x0033CECC File Offset: 0x0033B0CC
		public virtual TObjectName PropertyName
		{
			get
			{
				return this.propertyName;
			}
		}

		// Token: 0x1700095E RID: 2398
		// (get) Token: 0x060028D4 RID: 10452 RVA: 0x0033CED4 File Offset: 0x0033B0D4
		public virtual EHiveDescOption ShowOptions
		{
			get
			{
				return this.showOptions;
			}
		}

		// Token: 0x1700095F RID: 2399
		// (get) Token: 0x060028D5 RID: 10453 RVA: 0x0033CEDC File Offset: 0x0033B0DC
		public virtual THiveDescTablePartition TablePartition
		{
			get
			{
				return this.tablePartition;
			}
		}

		// Token: 0x17000960 RID: 2400
		// (get) Token: 0x060028D6 RID: 10454 RVA: 0x0033CEE4 File Offset: 0x0033B0E4
		public virtual TObjectName FunctionName
		{
			get
			{
				return this.functionName;
			}
		}

		// Token: 0x17000961 RID: 2401
		// (get) Token: 0x060028D7 RID: 10455 RVA: 0x0033CEEC File Offset: 0x0033B0EC
		public virtual TObjectName TableName
		{
			get
			{
				return this.tableName;
			}
		}

		// Token: 0x17000962 RID: 2402
		// (get) Token: 0x060028D8 RID: 10456 RVA: 0x0033CEF4 File Offset: 0x0033B0F4
		public virtual TObjectName ShowIdentifier
		{
			get
			{
				return this.showIdentifier;
			}
		}

		// Token: 0x17000963 RID: 2403
		// (get) Token: 0x060028D9 RID: 10457 RVA: 0x0033CEFC File Offset: 0x0033B0FC
		public virtual EHiveShowType ShowType
		{
			get
			{
				return this.showType;
			}
		}

		// Token: 0x17000964 RID: 2404
		// (get) Token: 0x060028DA RID: 10458 RVA: 0x0033CF04 File Offset: 0x0033B104
		public virtual TObjectName DbName
		{
			get
			{
				return this.dbName;
			}
		}

		// Token: 0x060028DB RID: 10459 RVA: 0x0033CF0C File Offset: 0x0033B10C
		public override void init(object arg1, object arg2)
		{
			this.showType = (EHiveShowType)arg1;
			switch (this.showType)
			{
			case EHiveShowType.stColumns:
				this.tableName = (TObjectName)arg2;
				return;
			case EHiveShowType.stFunctions:
				this.functionName = (TObjectName)arg2;
				return;
			case EHiveShowType.stPartitions:
				this.showIdentifier = (TObjectName)arg2;
				return;
			case EHiveShowType.stCreateTable:
				this.tableName = (TObjectName)arg2;
				return;
			case EHiveShowType.stTableStatus:
				this.showIdentifier = (TObjectName)arg2;
				return;
			case EHiveShowType.stTableProperties:
				this.tableName = (TObjectName)arg2;
				return;
			case EHiveShowType.stLocks:
				this.isExtended = (arg2 != null);
				return;
			case EHiveShowType.stIndexes:
				if (arg2 != null)
				{
					this.showOptions = EHiveDescOption.doFormatted;
					return;
				}
				break;
			default:
				this.showIdentifier = (TObjectName)arg2;
				break;
			}
		}

		// Token: 0x060028DC RID: 10460 RVA: 0x0033CFC8 File Offset: 0x0033B1C8
		public override void init(object arg1, object arg2, object arg3)
		{
			this.init(arg1, arg2);
			switch (this.showType)
			{
			case EHiveShowType.stColumns:
				this.dbName = (TObjectName)arg3;
				return;
			case EHiveShowType.stPartitions:
				this.partitionSpec = (TPartitionExtensionClause)arg3;
				return;
			case EHiveShowType.stTableStatus:
				this.partitionSpec = (TPartitionExtensionClause)arg2;
				return;
			case EHiveShowType.stTableProperties:
				this.propertyName = (TObjectName)arg3;
				return;
			case EHiveShowType.stLocks:
				this.tablePartition = (THiveDescTablePartition)arg3;
				return;
			case EHiveShowType.stIndexes:
				this.tableName = (TObjectName)arg3;
				return;
			}
			this.dbName = (TObjectName)arg3;
		}

		// Token: 0x060028DD RID: 10461 RVA: 0x0033D068 File Offset: 0x0033B268
		public override void init(object arg1, object arg2, object arg3, object arg4)
		{
			this.init(arg1, arg2, arg3);
			EHiveShowType ehiveShowType = this.showType;
			if (ehiveShowType == EHiveShowType.stTableStatus)
			{
				this.tableName = (TObjectName)arg4;
				return;
			}
			if (ehiveShowType != EHiveShowType.stIndexes)
			{
				return;
			}
			this.dbName = (TObjectName)arg4;
		}

		// Token: 0x04001E79 RID: 7801
		private EHiveShowType showType;

		// Token: 0x04001E7A RID: 7802
		private TObjectName showIdentifier;

		// Token: 0x04001E7B RID: 7803
		private TObjectName dbName;

		// Token: 0x04001E7C RID: 7804
		private TObjectName tableName;

		// Token: 0x04001E7D RID: 7805
		private TObjectName functionName;

		// Token: 0x04001E7E RID: 7806
		private TPartitionExtensionClause partitionSpec;

		// Token: 0x04001E7F RID: 7807
		private TObjectName propertyName;

		// Token: 0x04001E80 RID: 7808
		private bool isExtended;

		// Token: 0x04001E81 RID: 7809
		private THiveDescTablePartition tablePartition;

		// Token: 0x04001E82 RID: 7810
		private EHiveDescOption showOptions;
	}
}
